/**
 * 展示 元素
 * --目標元素 延迟添加 和 class animation 和 延遲删除 
 * @param {Object} el	--目標元素
 * @param {Object} animate	-- 動畫class
 * @param {Object} delay	-- 延遲添加
 * @param {Object} lateDrop	-- 延遲刪除
 * 
 * @return {Number} --延迟添加 和 animation 的時間 和 延遲删除 所用的時間
 */
function endsTimeAnimation(el, animate, delay, lateDrop) {
	if (!(el instanceof HTMLElement) || animate == undefined) {
		return 0
	}
	//返回結果
	let delayResult = 0

	delay = delay == undefined ? 0 : delay

	lateDrop = lateDrop == undefined ? 0 : lateDrop

	setTimeout(() => {
		// console.log(el);
		el.classList.add(animate);

		let comedEl = window.getComputedStyle(el);
		// console.log(comedEl);

		//目标 class 延迟时间
		let totalDelay = eval(parseFloat(comedEl.animationDuration.slice(0, -1)) + parseFloat(comedEl.animationDelay.slice(
			0,
			-1)));
		// console.log(totalDelay);

		setTimeout(() => {
			el.classList.remove(animate);
		}, Number(delay) + Number(totalDelay * 1000) + Number(lateDrop));
	}, delay)

	//賦值空元素 模擬計算 一次
	if (window.calcdomAnimateDelayEl == undefined) {
		let vac = document.createElement("div")
		document.appendChild(vac)
		window.calcdomAnimateDelayEl = vac
	}
	window.calcdomAnimateDelayEl.classList.add(animate)
	let a = window.getComputedStyle(window.calcdomAnimateDelayEl)
	let classDelay = eval(parseFloat(a.animationDuration.slice(0, -1)) + parseFloat(a.animationDelay.slice(
		0,
		-1)));
	//移除 模拟计算的 class
	window.calcdomAnimateDelayEl.classList.remove(animate)

	delayResult = Number(delay) + Number(classDelay * 1000) + Number(lateDrop)

	return delayResult
}
